package com.ruoyi.framework.app.service;

import com.ruoyi.common.core.domain.AjaxResults;
import com.ruoyi.qsng.domain.KUsers;
import com.ruoyi.qsng.dto.UserGrantDto;
import net.sf.json.JSONObject;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * 用户信息Service接口
 * 
 * @author kanglou
 * @date 2023-06-07
 */
public interface IKUsersFraneworkService
{

    KUsers callBack(JSONObject jsonObject,String openid);

    AjaxResults<KUsers> devLogin(String openId, String telephone);
    AjaxResults<String> apploginOut(HttpServletRequest request);
    /**
     * 小程序修改密码
     *
     * @param oldPassword        原密码
     * @param newPassword        新密码
     * @param newPasswordConfirm 再次确认新密码
     * @return
     */
    AjaxResults<KUsers> appChangePassword(String oldPassword, String newPassword, String newPasswordConfirm);
    /**
     * 小程序账号密码登录
     *
     * @param phone  用户手机号
     * @param password
     * @param
     * @return
     */
    AjaxResults<KUsers> appPhoneLogin(String phone, String password);
    /**
     * 小程序微信授权登录接口
     *
     * @param
     * @param rawData
     * @param encryptedData
     * @param iv
     * @return
     */
    AjaxResults<KUsers> appLogin(String openid, String rawData, String encryptedData, String iv);

    /**
     * 判断用户是否需要授权获取手机号, true代表需要，false代表不需要
     * @param code
     * @return
     */
    AjaxResults<UserGrantDto> isNeedGrantPhone(String code);


    /**
     * 查询用户信息
     * 
     * @param id 用户信息主键
     * @return 用户信息
     */
    public KUsers selectKUsersById(String id);

    /**
     * 查询用户信息列表
     * 
     * @param kUsers 用户信息
     * @return 用户信息集合
     */
    public List<KUsers> selectKUsersList(KUsers kUsers);

    /**
     * 新增用户信息
     * 
     * @param kUsers 用户信息
     * @return 结果
     */
    public int insertKUsers(KUsers kUsers);

    /**
     * 修改用户信息
     * 
     * @param kUsers 用户信息
     * @return 结果
     */
    public int updateKUsers(KUsers kUsers);

    /**
     * 批量删除用户信息
     * 
     * @param ids 需要删除的用户信息主键集合
     * @return 结果
     */
    public int deleteKUsersByIds(String[] ids);

    /**
     * 删除用户信息信息
     * 
     * @param id 用户信息主键
     * @return 结果
     */
    public int deleteKUsersById(String id);
}
